﻿using AnimalWithEvents;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

namespace TripleTests
{
    [TestClass()]
    public class PropertyChangedEventArgsTest
    {
        [TestMethod()]
        public void PropertyChangedEventArgsConstructorTest()
        {
            string property = "Name";
            string oldValue = "Mike";
            string newValue = "Kolio";
            PropertyChangedEventArgs eventArgs = new PropertyChangedEventArgs(property, oldValue, newValue);
            Assert.IsInstanceOfType(eventArgs, typeof(PropertyChangedEventArgs));
            Assert.IsTrue(eventArgs.PropertyName == property && eventArgs.OldValue == oldValue && eventArgs.NewValue == newValue);
        }

        [TestMethod()]
        public void PropertyChangedEventArgsConstructorTest2()
        {
            string name = "mike";
            string kind = "human";
            Animal animal = new Animal(name, kind);
            Assert.IsInstanceOfType(animal, typeof(Animal));
        }

        ///// <summary>
        /////A test for NewValue
        /////</summary>
        //[TestMethod()]
        //public void NewValueTest()
        //{
        //    string propertyName = string.Empty; // TODO: Initialize to an appropriate value
        //    string oldValue = string.Empty; // TODO: Initialize to an appropriate value
        //    string newValue = string.Empty; // TODO: Initialize to an appropriate value
        //    PropertyChangedEventArgs target = new PropertyChangedEventArgs(propertyName, oldValue, newValue); // TODO: Initialize to an appropriate value
        //    string actual;
        //    actual = target.NewValue;
        //    Assert.Inconclusive("Verify the correctness of this test method.");
        //}

        ///// <summary>
        /////A test for OldValue
        /////</summary>
        //[TestMethod()]
        //public void OldValueTest()
        //{
        //    string propertyName = string.Empty; // TODO: Initialize to an appropriate value
        //    string oldValue = string.Empty; // TODO: Initialize to an appropriate value
        //    string newValue = string.Empty; // TODO: Initialize to an appropriate value
        //    PropertyChangedEventArgs target = new PropertyChangedEventArgs(propertyName, oldValue, newValue); // TODO: Initialize to an appropriate value
        //    string actual;
        //    actual = target.OldValue;
        //    Assert.Inconclusive("Verify the correctness of this test method.");
        //}

        ///// <summary>
        /////A test for PropertyName
        /////</summary>
        //[TestMethod()]
        //public void PropertyNameTest()
        //{
        //    string propertyName = string.Empty; // TODO: Initialize to an appropriate value
        //    string oldValue = string.Empty; // TODO: Initialize to an appropriate value
        //    string newValue = string.Empty; // TODO: Initialize to an appropriate value
        //    PropertyChangedEventArgs target = new PropertyChangedEventArgs(propertyName, oldValue, newValue); // TODO: Initialize to an appropriate value
        //    string actual;
        //    actual = target.PropertyName;
        //    Assert.Inconclusive("Verify the correctness of this test method.");
        //}
    }
}
